As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
RAID, an acronym for Redundant Array of Independent Disks, includes data storage schemes that can divide and replicate data among multiple physical disk drives. The physical disks are said to be in a RAID array, which is addressed by the operating system as one single disk (also referred to as a virtual disk). Many different schemes or architectures of RAID devices are known to those having ordinary skill in the art, some of which rely on parity information to provide redundancy and fault tolerance. Each different architecture or scheme may provide a different balance among various goals to be achieved in storing data, which include, but are not limited to, increased data reliability and increased input/output (hereinafter “I/O”) performance.
In this regard, RAID is a technology that provides increased storage functions and increased reliability through redundancy, and as such may be beneficially employed in information handling systems. Redundancy in a RAID device may be achieved by combining multiple disk drive components, which may include one or more disks of different type, size, or classification, into a logical unit, where data is distributed across the drives in one of several ways called “RAID levels.” The data distribution determines the RAID type, e.g., RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, RAID 60, etc.
In its simplest form, parity-based RAID works by writing stripes of data across three or more physical storage resources. For example, a data strip may be written to W−1 of the physical storage resources of the RAID array and a parity strip written to one of the physical storage resources of the RAID array, where “W” equals the number of devices in the RAID array. In RAID 5, for example, each written parity strip may be written as the logical exclusive OR (XOR) of the data strips within the same stripe as the parity strip. Accordingly, if a physical storage resource of a RAID array fails, the data and/or parity stored on the failed storage resource can be rebuilt by performing an XOR operation on the remaining storage resources.
RAID 60, also called RAID 6+0, combines the block-level striping of RAID 0 with the distributed double parity of RAID 6, resulting in a RAID 0 array striped across RAID 6 spans. Each span is RAID 6 and consists of at least 4 or more hard drives. When data is to be written, it is striped and distributed among the spans. Since each span is RAID 6, two types of parity data are calculated for each stripe of data written to the drives, referred to respectively as P and Q parity. RAID 60 may typically be costly in terms of processing time, mainly because Q parity generation requires Galois field arithmetic to be performed. In some instances, specialized hardware may be used to execute these processes more efficiently.
The use of the teachings of this disclosure may mitigate or eliminate various challenges and drawbacks associated with existing solutions. For example, the use of the present disclosure may reduce the amount of processing power required to generate parity data while maintaining or even increasing the level of data redundancy.